Practical coding and metric calculation for the lattice interfered channel

ABSTRACT

A communication system includes a lattice interfered channel to transmit data from a transmitter to a receiver. In one embodiment, an encoding-modulation scheme having a rich signal constellation is used to encode data at a total rate of 0.7 bit/dimension or less before transmission into the lattice interfered channel. In another embodiment, decoding metric approximation techniques are used to process signals received from the lattice interfered channel. In still another embodiment, multilevel code (MLC) decoding is used to jointly decode an error correction code component and a lattice/MLC component of a received signal. The error correction code component may then be extracted from the decoded signal.

BACKGROUND OF THE INVENTION

A lattice interfered channel is a channel that includes the addition of one or more lattice vectors. Such a channel may be obtained in a communication system when a transmitter and/or receiver in the system performs the modulo lattice operation on a corresponding communication signal. In one known application, for example, a modulo lattice operation is performed within a transmitter as part of an interference cancellation scheme to cancel known interference in a corresponding communication channel (see, e.g., “Capacity and Lattice-Strategies for Canceling Known Interference,” by Erez et al., Proc. 2000 Int. Symp. Inform. Theory Appl., Honolulu, Hi., November 2000). The modulo lattice operation has also been used within multistage decoders for decoding multilevel codes. One such use is described in the paper “Sphere-Bound-Achieving Coset Codes and Multilevel Coset Codes,” by Forney, Jr., et al., IEEE Transactions on Information Theory, vol. 46, no. 3, pp. 820–850, May 2000. Other applications involving lattice interfered channels also exist. Thus, there is a general need for practical techniques and structures for effectively implementing systems having a lattice interfered channel.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram illustrating a lattice interfered channel in accordance with an embodiment of the present invention;

FIG. 2 is a block diagram illustrating an example of a communication system having a lattice interfered channel in accordance with an embodiment of the present invention;

FIG. 3 is a flowchart illustrating a method for processing a signal in a communication system having a lattice interfered channel in accordance with an embodiment of the present invention;

FIG. 4 is a block diagram illustrating a communication system having a lattice interfered channel in accordance with another embodiment of the present invention; and

FIG. 5 is a flowchart illustrating a method for processing a signal having an error correction codeword component and a lattice/Multilevel Code (MLC) translation component in accordance with an embodiment of the present invention.

DETAILED DESCRIPTION

In the following detailed description, reference is made to the accompanying drawings that show, by way of illustration, specific embodiments in which the invention may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention. It is to be understood that the various embodiments of the invention, although different, are not necessarily mutually exclusive. For example, a particular feature, structure, or characteristic described herein in connection with one embodiment may be implemented within other embodiments without departing from the spirit and scope of the invention. In addition, it is to be understood that the location or arrangement of individual elements within each disclosed embodiment may be modified without departing from the spirit and scope of the invention. The following detailed description is, therefore, not to be taken in a limiting sense, and the scope of the present invention is defined only by the appended claims, appropriately interpreted, along with the full range of equivalents to which the claims are entitled. In the drawings, like numerals refer to the same or similar functionality throughout the several views.

FIG. 1 is a block diagram illustrating a lattice interfered channel 100. The lattice interfered channel 100 is a channel having an arbitrary underlying channel 102 (which may include, for example, an additive white Gaussian noise channel, etc.) with the addition of at least one lattice vector 104, 106 at the input and/or output of the underlying channel 102. The lattice vector(s) added at the underlying channel input and/or output may possibly come from different lattices, but are often related to the same lattice.

FIG. 2 is a block diagram illustrating a communication system 10 in accordance with an embodiment of the present invention. As illustrated, the communication system 10 includes: a transmitter 12, a communication channel 14, and a receiver 16. The transmitter 12 receives input data which it uses to generate a transmit signal that is then delivered to the communication channel 14. The transmit signal propagates through the communication channel 14 to the input of the receiver 16. The receiver 16 then processes the received signal to recover the original data. As illustrated, either the transmitter 12, the receiver 16, or both the transmitter 12 and the receiver 16, include a modulo lattice unit 20, 22 for performing a modulo lattice operation on a corresponding signal. The combination of the modulo lattice unit (or units) and the communication channel 14 (i.e., the underlying channel) form a lattice interfered channel in the system 10. Note that there are other possible realizations for a lattice interfered channel apart from the one illustrated in the system 10 of FIG. 2.

A lattice is a discrete infinite collection of points (or vectors) that is created by the repetition of a base or unit cell throughout space. A lattice must satisfy several rules; namely, it is closed under addition, it contains an inverse element for each lattice element, it contains the zero element (i.e., the origin of the coordinate axes is a point of the lattice), and it is discrete. For a given lattice and a given input vector, the modulo lattice operation first finds a point in the lattice that is closest to the input vector and then determines the difference between that point and the input vector. More specifically, let {overscore (ν)} be a real vector in n space (i.e., {overscore (ν)}εR^(n)) and let Λ⊂R^(n) be a lattice. The reduction of {overscore (ν)} modulo Λ (denoted by mod_(Λ)({overscore (ν)})) is then calculated in two stages: (1) a vector {overscore (λ)}εΛ is first found that is closest to {overscore (ν)}, and (2) the vector {overscore (λ)} is substracted from {overscore (ν)} to generate the output of the modulo operation. For example, if Λ=Z is the integer lattice, then mod_(Λ)(1.4)=1.4−1=0.4 and mod_(Λ)(38.7)=38.7−39=−0.3. Similarly, if Λ is the two-dimensional hexagonal lattice, (i.e., Λ={i·(1,0)+j·(1/2,√{square root over (3)}/2)|i,j integers}), then: mod_(Λ)((0.1,0.1))=(0.1,0.1)−(0,0)=(0.1,0.1) and mod_(Λ)(0.55,0.8)=(0.55,0.8)−(0.5,0.8660254)=(0.05,−0.0660254). As described above, a modulo lattice operation may be performed within a communication system for a variety of different reasons.

In addition to the optional modulo lattice unit 20, the transmitter 12 includes an encoder-modulator 18 to encode and modulate the input data in a predetermined manner for transmission into the channel 14. The encoding and modulation may be performed jointly by the encoder-modulator 18 as part of a single integrated mapping or the encoding and modulation may be performed separately (e.g., by separate encoder and modulator units within the encoder-modulator 18). The encoded and modulated data is delivered to the modulo lattice unit 20 (if present) which performs the modulo lattice operation on the signal. Although not shown in FIG. 2, the modulo lattice operation may be performed as part of a more complex processing function (e.g., the interference cancellation scheme of Erez et al. identified above, etc.). The resulting signal is delivered to the channel 14 for transmission to the receiver 16. Additional processing functionality (not shown) may also be present within the transmitter 12. For example, in a wireless implementation, radio frequency (RF) processing functionality (e.g., a frequency converter, an RF power amplifier, etc.) will typically be provided within the transmitter 12.

In the communication channel 14, the transmitted signal may be acted upon by additive noise. For example, in at least one embodiment, additive white Gaussian noise (AWGN) is present in the channel 14. Channel types other than additive noise channels may also be used in accordance with the present invention. Certain forms of signal distortion (e.g., inter-symbol interference or ISI) may also occur in the channel 14. This noise and distortion may modify the transmitted signal in a manner that makes it more difficult to recover the original data within the receiver 16.

As described above, the receiver 16 may include a modulo lattice unit 22 to perform a modulo lattice operation on a received signal. As in the transmitter 12, this modulo lattice operation may be performed as part of a more complex processing function (e.g., as part of a multistage decoding scheme, etc.). In addition, the receiver 16 may include a bit likelihood calculator 24 and a decoder 26. The bit likelihood calculator 24 calculates, based on the signal received from the channel and the channel statistics, the likelihoods that particular bit values were transmitted by the transmitter 12. These bit likelihoods are then delivered to the decoder 26 for use in decoding the received signal to recover the original data. In one approach, the bit likelihood calculator 24 determines the following probability vector for delivery to the decoder 26: (P(b ₁=0|{overscore (y)}),P(b ₂=0|{overscore (y)}), . . . ,P(b _(k)=0|{overscore (y)})) where {overscore (y)} is the signal received from the lattice interfered channel, k is the number of bits associated with a transmitted symbol, and b₁, b₂, . . . , b_(k) represent the coded bits (possibly corresponding to several component codes). Other forms of likelihood information may alternatively be developed by the bit likelihood calculator 24 including, for example, likelihood ratios, log likelihood ratios (LLRs), probability differences, and others. Like the transmitter 12, the receiver 16 may include other functionality that is not illustrated in the figure. For example, in a wireless system, RF processing functionality (e.g., a low noise amplifier, filters, a frequency converter, etc.) may be provided within the receiver 16. The decoder 26 may include any form of decoder that uses predetermined bit likelihood information during the decoding process.

In accordance with one aspect of the present invention, the encoder-modulator 18 within the transmitter 12 uses a rich constellation in the process of encoding and modulating the input data for transmission into the lattice interfered channel. A rich constellation is a constellation in n-space (R^(n)) that contains more than 2^(n) signal points. Examples of signaling schemes in two dimensions that use a rich constellation include 16-QAM (quadrature amplitude modulation) and 8-PSK (phase shift keying). It was determined that increased capacity can be achieved in a lattice interfered channel by utilizing a rich constellation to encode and modulate the data to be transmitted through the channel, even at low rates (e.g., rates of 0.7 bits/dimension or less). This is in contrast to non lattice interfered channels (e.g., a conventional AWGN channel, etc.) that typically achieve little or no improvement in capacity with the use of a rich constellation at low rates. As used herein, the term “rate” refers to the total rate resulting from the code rate and the corresponding signal constellation.

In accordance with another aspect of the present invention, reduced computational complexity is achieved within a receiver in a system having a lattice interfered channel by approximating the corresponding bit likelihoods developed in the receiver (e.g., within the bit likelihood calculator 24 of FIG. 2). In a non-approximated approach, infinite sums need to be calculated to determine the bit likelihoods based on a received signal. It was determined that a relatively accurate approximation of the bit likelihoods could be achieved by instead calculating a truncated sum over an appropriate portion of a corresponding lattice. In at least one embodiment, for example, a number of sets M_(i)(Λ)(i≧0) are defined that each include the ith smallest norm points of a lattice Λ. The set M₀(Λ) thus includes the zero vector as its only element. The set M₁(Λ) includes all of the first smallest norm points in the lattice Λ (other than the zero vector), the set M₂(Λ) includes the second smallest norm points in the lattice Λ, and so on. The sets M_(i)(Λ) will be referred to herein as the “tiers” of the lattice Λ. The constellation that is used in the process of encoding and modulating the input data will be represented as Ω herein. For each possible bit position l in a transmitted symbol, a set Ω_(o)(l) may be defined as the set of constellation points having zero in the lth bit position (1≦l≦k).

To approximate the bit likelihoods, a decoding accuracy may first be selected. In one approach, for example, this involves the selection of the number of tiers t+1 of the lattice Λ that will be used in the decoding process. A higher number of tiers will often result in a more accurate approximation, but will involve a higher computational complexity. Likewise, a smaller number of tiers may lead to a less accurate approximation, but will involve less computational complexity. In one approach, the lowest number of tiers is selected that will provide a desired decoding performance level. Once the number of tiers has been selected, a set T(Λ) is defined as the set including all relevant tiers (i.e., T(Λ)=M₀(Λ)∪M₁(Λ)∪ . . . ∪M_(t)(Λ)). Thus, the set T(Λ) will include all lattice points having a norm that is less than or equal to a predetermined value (this predetermined norm being the norm of points within M_(t)(Λ)).

If the receiver 16 does not include a modulo lattice unit 22 at its input, the bit likelihood calculator 24 will first reduce the received signal {overscore (y)} modulo Λ. The output of this operation is defined as {overscore ({tilde over (y)}={overscore (y)}−{overscore ({circumflex over (λ)}, where {overscore (y)} is the signal received from the channel 14 and {overscore ({circumflex over (λ)} is the closest lattice point to {overscore (y)}. If the modulo lattice unit 22 is present, this operation is not necessary in the bit likelihood calculator 24, and the operation is written simply {overscore ({tilde over (y)}={overscore (y)}. The approximated bit likelihoods may then be approximated as follows:

${P\left( {b_{l} = {0❘\overset{\_}{y}}} \right)} \cong \frac{\sum\limits_{\overset{\_}{s} \in {\Omega_{0}{(l)}}}{\sum\limits_{\overset{\_}{\lambda} \in {T{(\Lambda)}}}{{P\left( {{{\overset{\sim}{\overset{\_}{y}} + \overset{\_}{\lambda}}❘\overset{\_}{S}} = \overset{\_}{s}} \right)}{P\left( {{\overset{\_}{\lambda}❘\overset{\_}{S}} = \overset{\_}{s}} \right)}{P\left( {\overset{\_}{S} = \overset{\_}{s}} \right)}}}}{\sum\limits_{\overset{\_}{s} \in \Omega}{\sum\limits_{\overset{\_}{\lambda} \in {T{(\Lambda)}}}{{P\left( {{{\overset{\sim}{\overset{\_}{y}} + \overset{\_}{\lambda}}❘\overset{\_}{S}} = \overset{\_}{s}} \right)}{P\left( {{\overset{\_}{\lambda}❘\overset{\_}{S}} = \overset{\_}{s}} \right)}{P\left( {\overset{\_}{S} = \overset{\_}{s}} \right)}}}}$ where {overscore (S)} is the (random) transmitted symbol and P({overscore (y)}′|{overscore (S)}={overscore (s)}) is determined from the channel statistics. For an AWGN channel, for example, the probability P({overscore (y)}′|{overscore (S)}={overscore (s)}) is calculated as follows:

${P\left( {{{\overset{\_}{y}}^{\prime}❘\overset{\_}{S}} = \overset{\_}{s}} \right)} = {\frac{1}{\left( \sqrt{2\pi\;\sigma^{2}} \right)^{n}}{\exp\left( {{- \frac{1}{2\sigma^{2}}}{\sum\limits_{j = 1}^{n}\left( {y_{i}^{\prime} - s_{i}} \right)^{2}}} \right)}}$ where σ² is the noise variance, {overscore (y)}′=(y′₁, y′₂, . . . , y′_(n)) is any real vector, and {overscore (s)}=(s₁, s₂, . . . , s_(n)). In many applications, both P({overscore (λ)}|{overscore (S)}={overscore (s)}) and P({overscore (S)}={overscore (s)}) may be eliminated from the numerator and denominator as they are not dependent on the specific value of {overscore (s)} and {overscore (λ)}. Thus, in these applications, the approximated likelihood expression reduces to:

${P\left( {b_{l} = {0❘\overset{\_}{y}}} \right)} \cong \frac{\sum\limits_{\overset{\_}{s} \in {\Omega_{0}{(l)}}}{\sum\limits_{\overset{\_}{\lambda} \in {T{(\Lambda)}}}{P\left( {{{\overset{\sim}{\overset{\_}{y}} + \overset{\_}{\lambda}}❘\overset{\_}{S}} = \overset{\_}{s}} \right)}}}{\sum\limits_{\overset{\_}{s} \in \Omega}{\sum\limits_{\overset{\_}{\lambda} \in {T{(\Lambda)}}}{P\left( {{{\overset{\sim}{\overset{\_}{y}} + \overset{\_}{\lambda}}❘\overset{\_}{S}} = \overset{\_}{s}} \right)}}}$ The above approximated likelihoods may be calculated for each bit position l associated with the transmitted symbol. The resulting likelihood values may then be delivered to the decoder 26 for use in recovering the original data.

Using the above-described equations, approximations maybe determined for bit likelihoods having the form P(b₁=0|{overscore (y)}), 1≦l≦k. In an equivalent manner, approximations can be developed for other forms of likelihood information including, for example, likelihood ratios P(b₁=0|{overscore (y)})/Pr(b₁=1|{overscore (y)}), log-likelihood ratios (LLR), likelihood differences, and/or similar likelihood measures. The type of likelihood information that is developed will often depend on the specific decoding method being implemented.

An example of the above-described metric approximation technique follows for a signaling scheme having the symbol constellation Ω={−3,−1,1,3} (i.e., 4-PAM). Assume that pairs of input bits are mapped to constellation points in a transmitter as follows: 00

−3,01

−1,11

1,10

3 (i.e., Gray mapping). Suppose also that the transmitter adds a large dither signal to the transmit symbol and then reduces the result modulo lattice Λ consisting of all integers divisible by 5 (i.e., Λ={5·i|i integer}=5Z). Now suppose that the channel output is y=8.23 and the receiver does not include a modulo lattice unit 22. Then, the non-approximated value of P(b₁=0|y)(where b₁ is the first of the two bits that determine the constellation point) is:

${P\left( {b_{1} = {0❘y}} \right)} = \frac{\sum\limits_{s \in {\{{{- 3},{- 1}}\}}}{\sum\limits_{\lambda \in {5Z}}{{P\left( {{{8.23 + \lambda}❘S} = s} \right)}{P\left( {{\lambda ❘S} = s} \right)}{P\left( {S = s} \right)}}}}{\sum\limits_{s \in {\{{{- 3},{- 1},1,3}\}}}{\sum\limits_{\lambda \in {5Z}}{{P\left( {{{8.23 + \lambda}❘S} = s} \right)}{P\left( {{\lambda ❘S} = s} \right)}{P\left( {S = s} \right)}}}}$ where S is the random transmitted symbol, p(y′|S=s) is determined from the channel statistics, and {−3,−1} are the symbols with zero in the first bit. Note that the second summation in both the numerator and the denominator is performed over the entire lattice Λ=5Z (i.e., they are infinite sums). When the dither signal is strong and independent of the transmitted symbol S, then P(λ|S=s) is not a function of λ or s. Also, when S is uniformly distributed over its sample space, then P(S=s) is not a function of s. In this case, the non-approximated value of P(b₁=0|y) becomes:

${P\left( {b_{1} = {0❘y}} \right)} = {\frac{\sum\limits_{s \in {\{{{- 3},{- 1}}\}}}{\sum\limits_{\lambda \in {5Z}}{P\left( {{{8.23 + \lambda}❘S} = s} \right)}}}{\sum\limits_{s \in {\{{{- 3},{- 1},1,3}\}}}{\sum\limits_{\lambda \in {5Z}}{P\left( {{{8.23 + \lambda}❘S} = s} \right)}}}.}$

To reduce the complexity of the calculation, y is replaced by mod_(Λ)(y) and the sums are calculated over all lattice points λ with |λ|≦ρ, for some predetermined number ρ (e.g., all tiers having norms less than or equal to ρ). Since y=8.23, {circumflex over (λ)}=10 and mod_(Λ)(y)=8.23−10=−1.77. If ρ=15, for example, then the approximate likelihoods corresponding to the above two equations are, respectively:

${{P\left( {b_{1} = {0❘y}} \right)} \cong \mspace{625mu}\mspace{110mu}{\frac{\sum\limits_{s \in {\{{{- 3},{- 1}}\}}}{\sum\limits_{\lambda \in {\{{0,{\pm 5},{\pm 10},{\pm 15}}\}}}{{p\left( {{{{- 1.77} + \lambda}❘S} = s} \right)}{P\left( {{\lambda ❘S} = s} \right)}{P\left( {S = s} \right)}}}}{\sum\limits_{s \in {\{{{- 3},{- 1},1,3}\}}}{\sum\limits_{\lambda \in {\{{0,{\pm 5},{\pm 10},{\pm 15}}\}}}{{p\left( {{{{- 1.77} + \lambda}❘S} = s} \right)}{P\left( {{\lambda ❘S} = s} \right)}{P\left( {S = s} \right)}}}}{and}}}\mspace{400mu}$ ${P\left( {b_{1} = {0❘y}} \right)} \cong {\frac{\sum\limits_{s \in {\{{{- 3},{- 1}}\}}}{\sum\limits_{\lambda \in {\{{0,{\pm 5},{\pm 10},{\pm 15}}\}}}{p\left( {{{{- 1.77} + \lambda}❘S} = s} \right)}}}{\sum\limits_{s \in {\{{{- 3},{- 1},1,3}\}}}{\sum\limits_{\lambda \in {\{{0,{\pm 5},{\pm 10},{\pm 15}}\}}}{p\left( {{{{- 1.77} + \lambda}❘S} = s} \right)}}}.}$ By replacing each summation over sε{−3,−1} by a summation over sε{−3,3} in the above expressions, the corresponding expressions for P(b₂=0|y) may be obtained, where b₂ is the second of the two bits that determine the constellation point.

FIG. 3 is a flowchart illustrating a method 30 for processing a received signal in a communication system having a lattice interfered channel. An input vector {overscore (y)} is first received (block 32). A point is then identified within a lattice Λ (i.e., a lattice associated with the lattice interfered channel) that is closest to the received vector {overscore (y)} (block 34). A difference {overscore ({tilde over (y)} is next obtained between the identified point and the vector {overscore (y)} (block 36). If the lattice interfered channel includes a modulo lattice operation at the input of the receiver, the identification of the closest point and the determination of the difference between the point and the received signal is already performed as part of the modulo lattice operation and we write {overscore ({tilde over (y)} for {overscore (y)} itself. Otherwise, the above acts are performed on the signal output by the lattice interfered channel. A bit likelihood measure (e.g., P(b₁=0|{overscore (y)})) is next approximated using the difference {overscore ({tilde over (y)} determined above (block 38). This approximation includes summing together probabilities associated with a subset of points within the lattice Λ. In one approach, the subset of points within the lattice Λ includes all points of the lattice having a norm no greater than a predetermined value ρ. The probabilities that are summed together may include, for example, the probability product P({overscore ({tilde over (y)}+{overscore (λ)}|{overscore (S)}={overscore (s)})P({overscore (λ)}|{overscore (S)}={overscore (s)})P({overscore (S)}={overscore (s)}) described above, for each point {overscore (s)} within an appropriate subset of constellation points, and for each point {overscore (λ)} within the appropriate finite subset of Λ. This summation would need to be determined, for example, during calculation of the approximated bit likelihood:

${P\left( {b_{l} = {0❘\overset{\_}{y}}} \right)} \cong {\frac{\sum\limits_{\overset{\_}{s} \in {\Omega_{0}{(l)}}}{\sum\limits_{\overset{\_}{\lambda} \in {T{(\Lambda)}}}{{P\left( {{{\overset{\sim}{\overset{\_}{y}} + \overset{\_}{\lambda}}❘\overset{\_}{S}} = \overset{\_}{s}} \right)}{P\left( {{\overset{\_}{\lambda}❘\overset{\_}{S}} = \overset{\_}{s}} \right)}{P\left( {\overset{\_}{S} = \overset{\_}{s}} \right)}}}}{\sum\limits_{\overset{\_}{s} \in \Omega}{\sum\limits_{\overset{\_}{\lambda} \in {T{(\Lambda)}}}{{P\left( {{{\overset{\sim}{\overset{\_}{y}} + \overset{\_}{\lambda}}❘\overset{\_}{S}} = \overset{\_}{s}} \right)}{P\left( {{\overset{\_}{\lambda}❘\overset{\_}{S}} = \overset{\_}{s}} \right)}{P\left( {\overset{\_}{S} = \overset{\_}{s}} \right)}}}}.}$ Similarly, the probability P({overscore ({tilde over (y)}+{overscore (λ)}|{overscore (S)}={overscore (s)}) may be summed over the appropriate subsets of lattice and constellation points. This summation would need to be determined, for example, during calculation of the approximated bit likelihood:

${P\left( {b_{l} = {0❘\overset{\_}{y}}} \right)} \cong \frac{\sum\limits_{\overset{\_}{s} \in {\Omega_{0}{(l)}}}{\sum\limits_{\overset{\_}{\lambda} \in {T{(\Lambda)}}}{P\left( {{{\overset{\sim}{\overset{\_}{y}} + \overset{\_}{\lambda}}❘\overset{\_}{S}} = \overset{\_}{s}} \right)}}}{\sum\limits_{\overset{\_}{s} \in \Omega}{\sum\limits_{\overset{\_}{\lambda} \in {T{(\Lambda)}}}{P\left( {{{\overset{\sim}{\overset{\_}{y}} + \overset{\_}{\lambda}}❘\overset{\_}{S}} = \overset{\_}{s}} \right)}}}$ As will be appreciated, other approximated bit likelihood measures may also require calculation of the above identified summations (e.g., likelihood ratios, log likelihood ratios, etc.).

FIG. 4 is a block diagram illustrating a communication system 40 in accordance with an embodiment of the present invention. As illustrated, the communication system 40 includes: a transmitter 42, an additive lattice interfered channel 44, and a receiver 46. The additive lattice interfered channel 44 is comprised of an underlying additive noise channel (which, for example, can include the additive white Gaussian noise channel) together with addition of lattice vectors at the input and/or output of the underlying channel. The lattice vectors possibly added at the input and output of the underlying channel may come from different lattices, but are usually from the same lattice. The receiver 46 includes a multilevel code (MLC) decoder 48 and an ECC extraction unit 50. The transmitter 42 includes, among other things, an error correction coder (ECC) 52 to encode input data using an error correction code. In one approach, the error correction code has the form: C=C ₁+2C ₂+4C ₃+ . . . +2^(j−1) C _(j) where C_(i) are binary codes (that may or may not be nested). Such a code may exist when, for example, the ECC is constructed of j independent codes. This code format may also result when a single length n·j code is tiled (e.g., after interleaving) to j tiles of length n, where the individual tiles are denoted by C_(i); iε{1,2, . . . ,j}. Each codeword output by the ECC 52 is delivered to the additive lattice interfered channel 44 for transmission to the receiver 46. Each word received by the receiver 46 will thus have the form: {overscore (y)}={overscore (c)}+ē+{overscore (λ)} where {overscore (c)} is the transmitted ECC codeword, ē is the additive interference, and {overscore (λ)} is a lattice translation. This same received word format will also result if the above-described error correction code is added to a lattice code or a multilevel code (MLC) having the form: Λ=α(2^(j) C _(j+1)+ . . . +2^(k−1) C _(k)+2^(k) Z ^(n)) where 2^(k)Z^(n) is the translation term, Z is the set of integers, and α≧1 (in the special case where α=1, the total induced MLC is actually a multilevel coset code). The receiver 46 is operative for, among other things, inferring the transmitted ECC codeword {overscore (c)} based on the received word {overscore (y)}.

Initially, the receiver 46 views the received word {overscore (y)} as the sum of a multilevel code point (i.e., {overscore (c)}+{overscore (λ)}) and additive interference (i.e., ē). The MLC decoder 48 jointly decodes {overscore (c)} and {overscore (λ)} from the received word {overscore (y)} and outputs the resulting MLC point {overscore (c)}+{overscore (λ)}. The MLC decoder 48 may use any known MLC decoding technique to perform the joint decoding. The ECC extraction unit 50 receives the decoded MLC code point from the MLC decoder 48 and processes the information to extract the ECC codeword {overscore (c)}. Since the mapping of {overscore (c)} and {overscore (λ)} to the MLC point {overscore (c)}+{overscore (λ)} is typically a bijective function, {overscore (c)} and {overscore (λ)} may be easily recovered when {overscore (c)}+{overscore (λ)} is known. For example, for the code formulation described above, {overscore (c)} and {overscore (λ)} will correspond to specific coordinates of the binary expansion of {overscore (c)}+{overscore (λ)} (i.e., the first coordinates of the binary expansion will correspond to {overscore (c)} and the remaining coordinates will correspond to {overscore (λ)}). Thus, the codeword {overscore (c)} may be recovered by appropriately selecting the coordinates of the expansion. Once the ECC codeword {overscore (c)} has been extracted, the error correction coding may be removed to recover the original data word.

FIG. 5 is a flowchart illustrating a method 60 for processing a communication signal in accordance with an embodiment of the present invention. A signal is received that includes an error correction codeword component, a lattice/MLC translation component, and an additive interference component (block 62). The error correction codeword component and the lattice/MLC translation component of the signal are viewed collectively as a single codeword of a multilevel code. Such a signal may be formed, for example, by the passage of an ECC codeword through an additive lattice interfered channel or by the simple addition of a lattice code or multilevel code to a corresponding error correction code. Using MLC decoding techniques, the error correction codeword component and the lattice/MLC translation component of the signal are jointly decoded (block 64). The error correction codeword component of the signal is then extracted from the decoded signal (block 66). The extraction may include, for example, determining a binary expansion of the decoded signal and then selecting coordinates of the expansion that correspond to the error correction codeword component. Other extraction techniques may alternatively be used. Furthermore, the output of the extraction unit need not necessarily be comprised of hard bit values, and soft outputs for the error correction codeword component are allowed. The error correction codeword component may then be output for further processing (block 68).

The above-described techniques for recovering an ECC codeword maybe used whenever an ECC and a corresponding lattice/MLC type code (e.g., associated with a lattice interfered channel) can be viewed collectively as a single multilevel code. In at least one approach, an ECC is selected for a communication system (e.g., a system having an additive lattice interfered channel) so that the above described techniques can be implemented in a receiver of the system. Using the above-described techniques, maximum a-posteriori decoding may be approximated with relatively low complexity. An additional reduction in complexity may be achieved by performing the joint decoding of the ECC and lattice/MLC using iterative decoding techniques. In at least one implementation, the previously described bit likelihood approximation techniques are used during the joint decoding of the ECC and lattice/MLC. However, as described above, any known method of performing MLC decoding may be used. It should be appreciated that the codes C and Λ do not have to be made up of binary constituent codes to perform the above-described techniques. That is, any small alphabet size may be used.

Minimum probability of error may be achieved when the decisions correspond to

${P\left( {\overset{\_}{c}❘\overset{\_}{y}} \right)} = {\sum\limits_{\overset{\_}{\lambda}}{{P\left( {\overset{\_}{c},{\overset{\_}{\lambda}❘\overset{\_}{y}}} \right)}.}}$ In at least one approach, decoding is simplified by approximating this term using max_({overscore (λ)})P({overscore (c)},{overscore (λ)}|{overscore (y)}). This is because the evaluation of max_({overscore (c)})max_({overscore (λ)})P({overscore (c)},{overscore (λ)}|{overscore (y)})=max_({{overscore (c)},{overscore (λ)}})P({overscore (c)}, {overscore (λ)}|{overscore (y)}) is significantly less complex than the evaluation of

${\max_{\overset{\_}{c}}{P\left( {\overset{\_}{c}❘\overset{\_}{y}} \right)}} = {\max_{\overset{\_}{c}}{\sum\limits_{\overset{\_}{\lambda}}{{P\left( {\overset{\_}{c},{\overset{\_}{\lambda}❘\overset{\_}{y}}} \right)}.}}}$

Although the present invention has been described in conjunction with certain embodiments, it is to be understood that modifications and variations may be resorted to without departing from the spirit and scope of the invention as those skilled in the art readily understand. Such modifications and variations are considered to be within the purview and scope of the invention and the appended claims. 

1. A communication system comprising: an encoder-modulator to map input data into a signal constellation having more than 2^(k) signal points in k dimensions; and a lattice interfered channel having an underlying channel together with at least one of the following: addition of at least one lattice vector at an input of the underlying channel and addition of at least one lattice vector at an output of the underlying channel, wherein said mapped input data is transmitted through said lattice interfered channel at a rate of no greater than 0.7 bits/dimension.
 2. The communication system of claim 1, wherein: said encoder-modulator includes a separate modulator and a separate encoder.
 3. The communication system of claim 1, wherein: said encoder-modulator maps said input data into said signal constellation as part of a single integrated mapping.
 4. The communication system of claim 1, wherein: said lattice interfered channel includes a modulo lattice unit to perform a modulo lattice operation on said mapped input data before said mapped input data reaches said underlying channel.
 5. The communication system of claim 1, wherein: said lattice interfered channel includes a modulo lattice unit to perform a modulo lattice operation on output data of said underlying channel.
 6. A transmitter comprising: an encoder-modulator to map input data into a k-dimensional signal constellation having greater than 2^(k) signal points at a rate of no more than 0.7 bits/dimension; and a modulo lattice unit to perform a modulo lattice operation on the mapped input data.
 7. The transmitter of claim 6, wherein: said encoder-modulator includes a separate modulator and a separate encoder.
 8. The transmitter of claim 6, wherein: said encoder-modulator maps said input data into said signal constellation as part of a single integrated mapping.
 9. A method for transmitting data in a communication system, comprising: encoding and modulating data according to a signaling scheme having a rich constellation to generate a communication signal; and transmitting said communication signal into a lattice interfered channel at a rate of no more than 0.7 bits/dimension.
 10. The method of claim 9, wherein: said lattice interfered channel includes an underlying channel and a modulo lattice unit to perform a modulo lattice operation on a signal flowing toward said underlying channel.
 11. The method of claim 9, wherein: said lattice interfered channel includes an underlying channel and a modulo lattice unit to perform a modulo lattice operation on a signal flowing out of said underlying channel.
 12. The method of claim 9, wherein: said lattice interfered channel includes an underlying channel, a first modulo lattice unit to perform a modulo lattice operation on a signal flowing toward said underlying channel, and a second modulo lattice unit to perform a modulo lattice operation on a signal flowing out of said underlying channel.
 13. A method for use in processing a received signal in a communication system having a lattice interfered channel, said lattice interfered channel having an associated lattice Λ, comprising: identifying a point in the lattice Λ that is closest to a received vector; obtaining a difference between the identified point and the received vector; and approximating a bit likelihood measure using the difference between the identified point and the received vector, wherein approximating includes calculating a sum of probabilities associated with a subset of lattice points within lattice Λ, wherein prior to transmission, input data is mapped into a signal constellation having more than 2^(k) signal points in k dimensions for transmission through the lattice interfered channel at a rate of no greater than 0.7 bits/dimension.
 14. The method of claim 13, wherein: said subset of lattice points includes points within Λ having a norm no greater than a predetermined value ρ.
 15. A method for use in processing a received signal in a communication system having a lattice interfered channel, said lattice interfered channel having an associated lattice Λ, comprising: identifying a point in the lattice Λ that is closest to a received vector; obtaining a difference between the identified point and the received vector; and approximating a bit likelihood measure using the difference between the identified point and the received vector, wherein approximating includes calculating a sum of probabilities associated with a subset of lattice points within lattice Λ , wherein calculating a sum of probabilities includes summing P({overscore ({tilde over (y)}+{overscore (λ)}|{overscore (S)}={overscore (s)}) over the subset of lattice points and a subset of constellation points, where {overscore ({tilde over (y)} is the difference between the identified point and the received vector, {overscore (λ)} is a point within the subset of lattice points, and {overscore (s)} is a possible value of a random transmitted symbol {overscore (S)}.
 16. A method for use in processing a received signal in a communication system having a lattice interfered channel, said lattice interfered channel having an associated lattice Λ, comprising: identifying a point in the lattice Λ that is closest to a received vector; obtaining a difference between the identified point and the received vector; and approximating a bit likelihood measure using the difference between the identified point and the received vector, wherein approximating includes calculating a sum of probabilities associated with a subset of lattice points within lattice Λ , wherein calculating a sum of probabilities includes summing the probability product P({overscore ({tilde over (y)}+{overscore (λ)}|{overscore (S)}={overscore (s)})P({overscore (λ)}|{overscore (S)}={overscore (s)})P({overscore (S)}={overscore (s)}) over the subset of lattice points, where {overscore ({tilde over (y)} is the difference between the identified point and the received vector, {overscore (λ)} is a point within the subset of lattice points, and {overscore (s)} is a possible value of a random transmitted symbol {overscore (S)}.
 17. A method for use in processing a received signal in a communication system having a lattice interfered channel, said lattice interfered channel having an associated lattice Λ, comprising: identifying a point in the lattice Λ that is closest to a received vector; obtaining a difference between the identified point and the received vector; and approximating a bit likelihood measure using the difference between the identified point and the received vector, wherein approximating includes calculating a sum of probabilities associated with a subset of lattice points within lattice Λ, wherein approximating a bit likelihood measure includes calculating the following bit likelihood approximation: $P\left( {b_{l} = {{0\left. \overset{\_}{y} \right)} \cong \frac{\sum\limits_{\overset{\_}{s} \in {\Omega_{0}{(l)}}}{\sum\limits_{\overset{\_}{\lambda} \in {T{(\Lambda)}}}{P\left( {\overset{\overset{\sim}{\_}}{y} + {\overset{\_}{\lambda}\left. {\overset{\_}{S} = \overset{\_}{s}} \right){P\left( {\overset{\_}{\lambda}\left. {\overset{\_}{S} = \overset{\_}{s}} \right){P\left( {\overset{\_}{S} = \overset{\_}{s}} \right)}} \right.}}} \right.}}}{\sum\limits_{\overset{\_}{s} \in \Omega}{\sum\limits_{\overset{\_}{\lambda} \in {T{(\Lambda)}}}{P\left( {\overset{\overset{\sim}{\_}}{y} + {\overset{\_}{\lambda}\left. {\overset{\_}{S} = \overset{\_}{s}} \right){P\left( {\overset{\_}{\lambda}\left. {\overset{\_}{S} = \overset{\_}{s}} \right){P\left( {\overset{\_}{S} = \overset{\_}{s}} \right)}} \right.}}} \right.}}}}} \right.$ where {overscore ({tilde over (y)} is the difference between the identified point and the received vector, l is a bit position index, Ω represents an encoding-modulation constellation, Ω₀(l) represents a set of constellation points having zero in the lth bit position, T(Λ) is a subset of lattice points within Λ having a norm that is no greater than a predetermined value, and {overscore (S)} is a random transmitted symbol.
 18. A method for use in processing a received signal in a communication system having a lattice interfered channel, said lattice interfered channel having an associated lattice Λ, comprising: identifying a point in the lattice Λ that is closest to a received vector; obtaining a difference between the identified point and the received vector; and approximating a bit likelihood measure using the difference between the identified point and the received vector, wherein approximating includes calculating a sum of probabilities associated with a subset of lattice points within lattice Λ , wherein approximating a bit likelihood measure includes calculating the following bit likelihood approximation: $P\left( {b_{l} = {{0\left. \overset{\_}{y} \right)} \cong \frac{\sum\limits_{\overset{\_}{s} \in {\Omega_{0}{(l)}}}{\sum\limits_{\overset{\_}{\lambda} \in {T{(\Lambda)}}}{P\left( {\overset{\overset{\sim}{\_}}{y} + {\overset{\_}{\lambda}\left. {\overset{\_}{S} = \overset{\_}{s}} \right)}} \right.}}}{\sum\limits_{\overset{\_}{s} \in \Omega}{\sum\limits_{\overset{\_}{\lambda} \in {T{(\Lambda)}}}{P\left( {\overset{\overset{\sim}{\_}}{y} + {\overset{\_}{\lambda}\left. {\overset{\_}{S} = \overset{\_}{s}} \right)}} \right.}}}}} \right.$ where {overscore ({tilde over (y)} is the difference between the identified point and the received vector, l is a bit position index, Ω represents an encoding-modulation constellation, Ω₀(l) represents a set of constellation points corresponding to zero in the lth bit position, T(Λ) is a subset of lattice points within Λ having a norm that is no greater than a predetermined value, and {overscore (S)} is a random transmitted symbol.
 19. A method for processing a communication signal, comprising: providing a signal having an error correction codeword component, a translation component, and an additive interference component; jointly decoding the error correction codeword component and the translation component of the signal using multilevel code (MLC) decoding to generate a decoded signal; and extracting the error correction codeword component from the decoded signal.
 20. The method of claim 19 wherein: providing a signal includes receiving an error correction codeword from a lattice interfered channel.
 21. The method of claim 19 wherein: said translation component includes an MLC translation.
 22. The method of claim 19 wherein: said translation component includes a lattice code translation.
 23. The method of claim 19 wherein: said error correction codeword component of the signal includes a codeword of a corresponding error correction code; and said translation component of the signal includes a translation associated with a lattice code; and said error correction code and said lattice code collectively form an MLC.
 24. The method of claim 19 wherein: said error correction codeword component of the signal includes a codeword of a corresponding error correction code; and said translation component of the signal includes a translation associated with a first MLC; and said error correction code and said first MLC collectively form a second MLC.
 25. A receiver comprising: a multilevel code (MLC) decoder to jointly decode an error correction code component and a translation component of a received signal to generate a decoded signal; and an ECC extraction unit to extract the error correction code component from the decoded signal.
 26. The receiver of claim 25 wherein: said MLC decoder uses iterative decoding techniques.
 27. The receiver of claim 25 wherein: said translation component of said received signal includes an MLC translation.
 28. The receiver of claim 25 wherein: said translation component of said received signal includes a lattice code translation.
 29. The receiver of claim 25 wherein: said error correction code component and said translation component together form a code point of an MLC.
 30. A communication device comprising: a transmitter to generate transmit signals for delivery to a remote receiver through a lattice interfered channel, said transmitter including an error correction encoder to encode input data according to an error correction code, wherein said error correction code is selected so that a multilevel code is formed by the collective action of the error correction coder and the lattice interfered channel during transmitter operation, wherein the error correction encoder includes a modulator to map the encoded input data into a signal constellation having more than 2^(k) signal points in k dimensions for transmission through the lattice interfered channel at a rate of no greater than 0.7 bits/dimension.
 31. The communication device of claim 30, wherein: said transmitter includes a modulo lattice unit to perform a modulo lattice operation on a signal, said modulo lattice unit forming a part of the lattice interfered channel.
 32. The communication device of claim 30, wherein: the remote receiver includes a modulo lattice unit to perform a modulo lattice operation on a signal, said modulo lattice unit forming a part of the lattice interfered channel. 